←Select platform

UserFilterCommand Constructor(int,int,LeadPoint,int,int,UserFilterCommandType,int[])

Summary

Initializes a new UserFilterCommand class object with explicit parameters.

Syntax
C#
VB
Objective-C
C++
Java
Public Function New( _ 
   ByVal filterWidth As Integer, _ 
   ByVal filterHeight As Integer, _ 
   ByVal centerPoint As LeadPoint, _ 
   ByVal divisor As Integer, _ 
   ByVal offset As Integer, _ 
   ByVal type As UserFilterCommandType, _ 
   ByVal matrix() As Integer _ 
) 
- (instancetype)initWithFilterWidth:(NSUInteger)filterWidth 
                       filterHeight:(NSUInteger)filterHeight 
                        centerPoint:(LeadPoint)centerPoint 
                            divisor:(NSUInteger)divisor 
                             offset:(NSInteger)offset 
                               type:(LTUserFilterCommandType)type  
                             matrix:(nullable const int *)matrix 
                       matrixLength:(NSUInteger)matrixLength 
public UserFilterCommand( 
   int filterWidth,  
   int filterHeight,  
   LeadPoint centerPoint,  
   int divisor,  
   int offset,  
   UserFilterCommandType type,  
   int[] matrix 
) 
public: 
UserFilterCommand(  
   int filterWidth, 
   int filterHeight, 
   LeadPoint centerPoint, 
   int divisor, 
   int offset, 
   UserFilterCommandType type, 
   array<int>^ matrix 
) 

Parameters

filterWidth
Number of columns in the user-defined array (mask). This parameter only accepts positive values.

filterHeight
Number of rows in the user-defined array (mask). This parameter only accepts positive values.

centerPoint
Any two-dimensional position of the matrix array, to be used as the matrix (mask)center.

divisor
Value used to divide the final result of the output. This must be a non-zero value. If you want to use floating point values for the matrix elements and the divisor, multiply the matrix elements and the divisor with the same value (for example, 10, 100, 1000). This parameter only accepts positive values.

offset
Value used to offset the final result of the output.

type
Flag that indicates the type of operation.

matrix
Array of (filterWidth * filterHeight) integers containing the user-defined matrix (mask). The elements are stored in row order (first row, second row, etc).

Example

Run the UserFilterCommand on an image, In this example the high pass.filter will be applied using user defined matrix.

C#
VB
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Effects; 
 
public void UserFilterConstructorExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")); 
 
   // Prepare the command 
   int[] matrix = new int[9]; 
 
   // Initialize the array with factor used to apply the high pass filter. 
   for (int i = 0; i < 3; i++) 
   { 
      for (int j = 0; j < 3; j++) 
      { 
         if (j == 1 || i == 1) 
         { 
            if (j == 1 && i == 1) 
               matrix[i * 3 + j] = 5; 
            else 
               matrix[i * 3 + j] = -1; 
         } 
         else 
            matrix[i * 3 + j] = 0; 
      } 
   } 
 
   UserFilterCommand command = new UserFilterCommand(3, 3, new LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix); 
   // Apply the high pass custom filter. 
   command.Run(image); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Effects 
 
Public Sub UserFilterConstructorExample() 
   Dim codecs As New RasterCodecs() 
   codecs.ThrowExceptionsOnInvalidImages = True 
 
   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "IMAGE1.CMP")) 
 
   ' Prepare the command 
   Dim i As Integer 
   Dim j As Integer 
   Dim matrix() As Integer 
   ReDim matrix(8) 
 
   ' Initialize the array with factor used to apply the high pass filter. 
   For i = 0 To 2 
      For j = 0 To 2 
         If (j = 1 Or i = 1) Then 
            If (j = 1 And i = 1) Then 
               matrix(i * 3 + j) = 5 
            Else 
               matrix(i * 3 + j) = -1 
            End If 
         Else 
            matrix(i * 3 + j) = 0 
         End If 
      Next 
   Next 
 
   Dim command As UserFilterCommand = New UserFilterCommand(3, 3, New LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix) 
   ' Apply the high pass custom filter. 
   command.Run(leadImage) 
   codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24) 
 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 
c#[Silverlight C# Example] 
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing.Effects; 
using Leadtools.Examples; 
 
public void UserFilterConstructorExample(RasterImage image, Stream outStream) 
{ 
   // Prepare the command 
   int[] matrix = new int[9]; 
 
   // Initialize the array with factor used to apply the high pass filter. 
   for (int i = 0; i < 3; i++) 
   { 
      for (int j = 0; j < 3; j++) 
      { 
         if (j == 1 || i == 1) 
         { 
            if (j == 1 && i == 1) 
               matrix[i * 3 + j] = 5; 
            else 
               matrix[i * 3 + j] = -1; 
         } 
         else 
            matrix[i * 3 + j] = 0; 
      } 
   } 
 
   UserFilterCommand command = new UserFilterCommand(3, 3, new LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix); 
   // Apply the high pass custom filter. 
   command.Run(image); 
   // Save result image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24); 
   image.Dispose(); 
} 
vb[Silverlight VB Example] 
Imports Leadtools 
Imports Leadtools.Codecs 
Imports Leadtools.ImageProcessing.Effects 
 
Public Sub UserFilterConstructorExample(ByVal image As RasterImage, ByVal outStream As Stream) 
   ' Prepare the command 
   Dim matrix As Integer() = New Integer(8) {} 
 
   ' Initialize the array with factor used to apply the high pass filter. 
   For i As Integer = 0 To 2 
      For j As Integer = 0 To 2 
         If j = 1 OrElse i = 1 Then 
            If j = 1 AndAlso i = 1 Then 
               matrix(i * 3 + j) = 5 
            Else 
               matrix(i * 3 + j) = -1 
            End If 
         Else 
            matrix(i * 3 + j) = 0 
         End If 
      Next j 
   Next i 
 
   Dim command As UserFilterCommand = New UserFilterCommand(3, 3, New LeadPoint(1, 1), 1, 0, UserFilterCommandType.Sum, matrix) 
   ' Apply the high pass custom filter. 
   command.Run(image) 
   ' Save result image 
   Dim codecs As RasterCodecs = New RasterCodecs() 
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24) 
   image.Dispose() 
End Sub 

Requirements

Target Platforms

Help Version 20.0.2020.4.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ImageProcessing.Effects Assembly